package com.dgut.app.service;

import com.dgut.app.param.CollectParam;
import com.dgut.common.result.OrderDetailResult;
import com.dgut.common.param.OrderFormParam;
import com.dgut.common.param.OrderListParam;
import com.dgut.common.utils.PageVO;

/**
 * @Author zyq
 * @Date 2022/4/13 15:39
 * @Description TODO
 * @Version 1.0
 **/
public interface OrderService {

    /**
     * 用户发布回收订单
     */
    void publishOrder(OrderFormParam param, String token);

    /**
     * 回收订单列表
     */
    PageVO listOrder(OrderListParam param, String token);

    /**
     * 回收订单详情信息
     */
    OrderDetailResult detail(String id);

    /**
     * 回收员接取订单
     */
    void accept(String id, String token);

    /**
     * 发布者取消订单
     */
    void cancel(String id, String token);

    /**
     * 回收员取消接单
     */
    void cancelAccept(String id, String token);

    /**
     * 回收员完成回收
     */
    void collect(CollectParam param, String token);


    /**
     * 发布者确认完成
     */
    void confirm(String id, String token);

    /**
     * 发布者拒绝确认
     */
    void cancelConfirm(String id, String token);
}
